package com.geek.javase.MapWork;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

/**
 * @author chenshupeng
 * @date 2025/9/4
 * @desc 键盘输入一组字符串，通过Map计算字符串中字母出现的个数
 **/

public class Q1 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一组字符串：");
        String input = scanner.nextLine();
        // 创建 HashMap 用于存储字母及其出现次数  Character 为键，Integer 为值
        Map<Character, Integer> letterCountMap = new HashMap<>();
        // 遍历
        for (char c : input.toCharArray()) {
            // 如果是字母（不区分大小写，这里先统一转为小写处理）
            if (Character.isLetter(c)) {
                char lowerCaseC = Character.toLowerCase(c);
                // 如果 map 中已包含该字母，次数加 1
                if (letterCountMap.containsKey(lowerCaseC)) {
                    letterCountMap.put(lowerCaseC, letterCountMap.get(lowerCaseC) + 1);
                }
                else {
                    // 否则，将该字母加入 map，次数为 1
                    letterCountMap.put(lowerCaseC, 1);
                }
            }
        }
        // 输出
        for (Map.Entry<Character, Integer> entry : letterCountMap.entrySet())
        {
            System.out.println(entry.getKey() + " 出现的次数：" + entry.getValue());
        }
        scanner.close();
    }
}
